package com.wx.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


@Data
@ApiModel(value = "PatientFollowVo")
public class PatientFollowDetailVo implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 患者id
	 */
	@ApiModelProperty(value = "患者id")
	@ExcelIgnore
	private String patientId;

	/**
	 * 患者姓名
	 */
	@ApiModelProperty(value = "患者姓名")
	@ExcelProperty(value = "患者姓名", index = 0)
	@ColumnWidth(value = 25)
	private String patientName;

	@ExcelIgnore
	private String nurseId;
	/**
	 * 护士姓名
	 */
	@ApiModelProperty(value = "护士姓名")
	@ExcelProperty(value = "护士姓名", index = 1)
	@ColumnWidth(value = 25)
	private String nurseName;
	/**
	 * 手机
	 */
	@ExcelProperty(value = "手机", index = 2)
	@ColumnWidth(value = 25)
	private String patientPhone;


	/**
	 * 身份证号
	 */
	@ApiModelProperty(value = "身份证号")
	@ExcelProperty(value = "身份证号", index = 3)
	@ColumnWidth(value = 25)
	private String idNum;

	/**
	 * 年龄
	 */
	@ApiModelProperty(value = "年龄")
	@ExcelProperty(value = "年龄", index = 4)
	@ColumnWidth(value = 25)
	private String age;

	/**
	 * 患者名称
	 */
	@ApiModelProperty(value = "年龄阶段")
	@ExcelProperty(value = "年龄阶段", index = 5)
	@ColumnWidth(value = 25)
	private String ageStage;

	/**
	 * 性别
	 */
	@ApiModelProperty(value = "性别")
	@ExcelProperty(value = "性别", index = 6)
	@ColumnWidth(value = 25)
	private String sex;

	/**
	 * 入组编号
	 */
	@ApiModelProperty(value = "入组编号")
	@ExcelProperty(value = "入组编号", index = 7)
	@ColumnWidth(value = 25)
	private String joinCode;

	/**
	 * 入组时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@ApiModelProperty(value = "入组时间")
	@ExcelProperty(value = "入组时间", index = 8)
	@ColumnWidth(value = 25)
	private Date joinTime;

	/**
	 * 入组城市编号
	 */
	@ApiModelProperty(value = "入组城市编号")
	@ExcelIgnore
	private String joinCityId;

	/**
	 * 入组城市
	 */
	@ApiModelProperty(value = "入组城市")
	@ExcelProperty(value = "入组城市", index = 9)
	@ColumnWidth(value = 25)
	private String joinCityName;

	@ExcelIgnore
	private String rangeId;
	/**
	 * 所属范围
	 */
	@ApiModelProperty(value = "所属范围")
	@ExcelProperty(value = "所属范围", index = 10)
	@ColumnWidth(value = 25)
	private String rangeName;

	/**
	 * 签署时间
	 */
	@ApiModelProperty(value = "签署时间")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@ExcelProperty(value = "签署时间", index = 11)
	@ColumnWidth(value = 25)
	private Date signTime;

	/**
	 * 医保类型
	 */
	@ApiModelProperty(value = "医保类型：0：城镇职工 1：新农合 2城市居民-成人 3：城市居民-儿童 4离休干部 5：退休干部 6：其他商业医保 7：没有医保")
	@ExcelProperty(value = "医保类型", index = 12)
	@ColumnWidth(value = 25)
	private String medicalInsurance;

	@ApiModelProperty(value = "医保是否限额 0:不限制 1：限制")
	@ExcelProperty(value = "医保是否限额", index = 13)
	@ColumnWidth(value = 25)
	private String medicalInsuranceLimit;

	/**
	 * 医保限额
	 */
	@ApiModelProperty(value = "医保限额")
	@ExcelProperty(value = "医保限额", index = 14)
	@ColumnWidth(value = 25)
	private BigDecimal medicalInsuranceLimitMoney;

	/**
	 * icf编码
	 */
	@ApiModelProperty(value = "icf编码")
	@ExcelProperty(value = "icf编码", index = 15)
	@ColumnWidth(value = 25)
	private String icfCode;

	/**
	 * 医院id
	 */
	@ApiModelProperty(value = "医院id")
	@ExcelIgnore
	private String hospitalId;

	/**
	 * 医院名称
	 */
	@ApiModelProperty(value = "医院名称")
	@ExcelProperty(value = "医院名称", index = 16)
	@ColumnWidth(value = 25)
	private String hospitalName;

	/**
	 * 是否转诊 0：否 1：是
	 */
	@ApiModelProperty(value = "是否转诊 0：否 1：是")
	@ExcelProperty(value = "是否转诊", index = 17)
	@ColumnWidth(value = 25)
	private String referralFlag;

	/**
	 * 转诊医院名称
	 */
	@ApiModelProperty(value = "转诊医院名称")
	@ExcelProperty(value = "转诊医院名称", index = 18)
	@ColumnWidth(value = 25)
	private String referralHospitalName;


	@ApiModelProperty(value = "确诊时间")
	@ExcelProperty(value = "确诊时间", index = 19)
	@ColumnWidth(value = 25)
	private String firstDiagnosisTime;

	/**
	 * 开始治疗时间
	 */
	@ApiModelProperty(value = "首次治疗时间")
	@ColumnWidth(value = 25)
	@ExcelProperty(value = "首次治疗时间", index = 20)
	private String startTreatmentTime;

	/**
	 * 既往用药品牌
	 */
	@ApiModelProperty(value = "既往用药品牌")
	@ExcelProperty(value = "既往用药品牌", index = 21)
	@ColumnWidth(value = 25)
	private String historyPharmacy;

	/**
	 * 身高
	 */
	@ApiModelProperty(value = "身高")
	@ExcelProperty(value = "身高", index = 22)
	@ColumnWidth(value = 25)
	private BigDecimal height;
	/**
	 * 体重
	 */
	@ApiModelProperty(value = "体重")
	@ExcelProperty(value = "体重", index = 23)
	@ColumnWidth(value = 25)
	private BigDecimal weight;

	/**
	 * 目前治疗药物
	 */
	@ApiModelProperty(value = "目前治疗药物")
	@ExcelProperty(value = "目前治疗药物", index = 24)
	@ColumnWidth(value = 25)
	private String currentTreatmentDrugs;

	/**
	 * 当前治疗方案 0：按需治疗 1:预防治疗 2:其他
	 */
	@ApiModelProperty(value = "当前治疗方案 0：按需治疗 1:预防治疗 2:其他")
	@ExcelProperty(value = "当前治疗方案", index = 25)
	@ColumnWidth(value = 25)
	private String treatmentPlan;

	/**
	 * 目前治疗剂量
	 */
	@ApiModelProperty(value = "目前治疗剂量")
	@ExcelProperty(value = "目前治疗剂量", index = 26)
	@ColumnWidth(value = 25)
	private String dosage;

	/**
	 * 用药频次
	 */
	@ApiModelProperty(value = "用药频次")
	@ExcelProperty(value = "用药频次", index = 27)
	@ColumnWidth(value = 25)
	private String dosageFrequency;

	/**
	 * 目前是否使用安佳因
	 */
	@ExcelProperty(value = "目前是否使用安佳因", index = 28)
	@ColumnWidth(value = 25)
	private String isAnjiainCurrentlyUsed;

	/**
	 * 用药时间
	 */
	@ExcelProperty(value = "用药时间", index = 29)
	@ColumnWidth(value = 25)
	private String medicationTime;

	/**
	 * 用药状态
	 */
	@ApiModelProperty(value = "用药状态")
	@ExcelProperty(value = "用药状态", index = 30)
	@ColumnWidth(value = 25)
	private String medicationStatus;

	/**
	 * 处方原因
	 */
	@ApiModelProperty(value = "处方原因")
	@ExcelProperty(value = "处方原因", index = 31)
	@ColumnWidth(value = 25)
	private String reasonForPrescription;


	/**
	 * 是否申请援助
	 */
	@ApiModelProperty(value = "是否申请援助")
	@ExcelProperty(value = "是否申请援助", index = 32)
	@ColumnWidth(value = 25)
	private String applyForAssistanceFlag;


	/**
	 * 当前医保额度
	 */
	@ApiModelProperty(value = "当前医保额度")
	@ExcelProperty(value = "当前医保额度", index = 33)
	@ColumnWidth(value = 25)
	private String currentMedicalInsuranceLimit;

	/**
	 * 是否收到物料包
	 */
	@ExcelProperty(value = "是否收到物料包", index = 34)
	@ColumnWidth(value = 25)
	private String receiveTheMaterialPackageFlag;

	/**
	 * 是否AE
	 */
	@ExcelProperty(value = "是否AE", index = 35)
	@ColumnWidth(value = 25)
	private String aeFlag;

	/**
	 * 通知患教会
	 */
	@ExcelProperty(value = "通知患教会", index = 36)
	@ColumnWidth(value = 25)
	private String notifyTheSufferingChurch;

	/**
	 * 随访日期
	 */
	@ExcelProperty(value = "随访日期", index = 37)
	@ColumnWidth(value = 25)
	private String followTime;

	/**
	 * 随访方式
	 */
	@ExcelProperty(value = "随访方式", index = 38)
	@ColumnWidth(value = 25)
	private String followWay;

	/**
	 * 受访状态
	 */
	@ExcelProperty(value = "受访状态", index = 39)
	@ColumnWidth(value = 25)
	private String interviewStatus;


	@ExcelIgnore
	private String jsonData;

	@ExcelIgnore
	private Integer status;

	@ExcelIgnore
	private Integer serialNumber;

	/**
	 * 脱组原因
	 */
	@ExcelProperty(value = "脱组原因", index = 40)
	@ColumnWidth(value = 25)
	private String exitReason;



}
